/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package redinftel.formularios;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import redinftel.entidades.Amistad;
import redinftel.entidades.Perfil;
import redinftel.entidades.Usuario;
import redinftel.sesiones.PerfilFacadeRemote;
import redinftel.sesiones.UsuarioFacadeRemote;

/**
 * Clase que busca el usaurio segun su nombre o su apellido
 * @author Six Degrees Team
 */
@ManagedBean
@SessionScoped
public class BuscarUsuariosBean implements Serializable {

    @EJB
    private UsuarioFacadeRemote usuarioFacade;
    @EJB
    private PerfilFacadeRemote perfilFacade;

    /** Creates a new instance of BuscarUsuariosBean */
    public BuscarUsuariosBean() {
          ChangeLocaleBean.cambiar();
    }
    private List<Perfil> listaUsuarios;
    private String cadena;
    private int elementos;
    private List<Integer> listaGrados;
    private static final String USUARIO = "usuario";

    public List<Integer> getListaGrados() {
        return listaGrados;
    }
/**
 *
 * @param listaGrados
 */
    public void setListaGrados(List<Integer> listaGrados) {
        this.listaGrados = listaGrados;
    }

    public int getElementos() {
        return elementos;
    }

    public void setElementos(int elementos) {
        this.elementos = elementos;
    }

    public String getCadena() {
        return cadena;
    }

    public void setCadena(String cadena) {
        this.cadena = cadena;
    }
/**
 *
 * @return lista de usuarios
 */
    public List<Perfil> getListaUsuarios() {
        return listaUsuarios;
    }

    public void setListaUsuarios(List<Perfil> listaUsuarios) {
        this.listaUsuarios = listaUsuarios;
    }
/**
 *
 * @param lista metodo que añade una lista a la lista de usuarios
 */
    public void añadirAListaUsuarios(List<Perfil> lista) {
        this.listaUsuarios.addAll(lista);
    }
/**
 *
 * @param cadena
 * @return cadena fraccionada
 */
    public String[] descomponerCadena(String cadena) {
        return cadena.split(" ");
    }
/**
 *
 * @return me redirige a la pagina de usuarios
 * Busca en la entidad perfilFacade
 * buscando por nombre o por apellido.
 */
    public String usuariosEncontrados() {
        FacesContext fctx = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) fctx.getExternalContext().getSession(false);
        Usuario yo = (Usuario) session.getAttribute(USUARIO);

        listaUsuarios = new ArrayList<Perfil>();
        listaGrados = new ArrayList<Integer>();
        String cc = cadena.toUpperCase();
        listaUsuarios = perfilFacade.findByNombreOrApellido(cc);
        elementos = listaUsuarios.size();

        return "usuarios";
    }
}
